//
//  NSString+ACCommon.h
//  AcmedcareCore
//
//  Created by AcZx on 2018/3/9.
//

#import <Foundation/Foundation.h>

@interface NSString (ACCommon)

#pragma mark ------------> 校验相关
/**
 *  判断是否是邮箱
 */
- (BOOL)isValidEmail;

/**
 *  判断是否是中文
 */
- (BOOL)isChinese;

/**
 *  判断是不是url地址
 */
- (BOOL)isValidUrl;

/**
 * 验证是否是手机号
 */
- (BOOL)isValidateMobile;

/**
 * 验证是否是十五位身份证号
 */
- (BOOL)isValidIdentifyFifteen;

/**
 * 验证是否是十八位身份证号
 */
- (BOOL)isValidIdentifyEighteen;

/**
 * 验证字符串是否为空
 */
- (BOOL)isEmptyString;
+ (BOOL)isEmpty:(NSString *)str;

/**
 * 验证字符串长度
 */
- (NSUInteger)utf8Length;

/**
 * 验证两个字符串内容是否一致
 */
- (BOOL)equals:(NSString *)string;

/**
 * 验证字符串是否以指定的前缀开头
 */
- (BOOL)stringStartsWith:(NSString*)prefix;

/**
 * 验证字符串是否以指定的后缀结束
 */
- (BOOL)stringEndWith:(NSString*)suffix;

/**
 * 验证是否包含某个字符串
 */
- (BOOL)containsString:(NSString *)string;

/**
 * 验证是否包含表情
 */
- (BOOL)isContainsEmoji;

#pragma mark ------------> 字符串处理
/**
 * 转换成小写
 */
- (NSString *)toLowerCase;

/**
 * 转换成大写
 */
- (NSString *)toUpperCase;

/**
 * 去除空格
 */
- (NSString *)noSpaceString;


/**
 * 递归计算符合规定的文本长度
 */
- (NSString *)cutBeyondTextInLength:(NSInteger)maxLenth;

/**
 * 用指定分隔符将字符串分割成数组
 */
- (NSArray *)stringToArray:(NSString *)separator;

/**
 * json字符串转字典
 */
- (id)jsonStrChangeToDictionary;

/**
 * 用指定字符串替换原字符串
 */
- (NSString *)replaceAll:(NSString *)oldStr with:(NSString *)newStr;

/**
 * 从指定的开始位置和结束位置开始截取字符串
 */
- (NSString *)substringFromIndex:(int)begin toIndex:(int)end;

#pragma mark ------------> 加密功能
/**
 *  md5加密(32位 常规)
 */
- (NSString *)md5;

/**
 *  md5加密(16位)
 */
- (NSString *)md5_16;

/**
 *  sha1加密
 */
- (NSString *)sha1;

@end

